In the field of high performance computing (HPC) simulation, data sets of simulation result parameters evolve over time, and may be referred to as time-series data. These data sets may be periodically saved as “checkpoints,” so that simulation can resume from the previously saved checkpoint, in case of interruptions induced by errors. Time-series data is usually multi-dimensional data that has a sequence of numbers where each value of a parameter may be collected at successive points in time (e.g., a value for each checkpoint). Based on the application generating the data (or the data collection technique), data can have multiple additional dimensions (in addition to time) that describe possible parameter values. Several types of applications may utilize time-series data. In particular, applications that simulate real world events such as weather, chemical reactions, aerodynamics, or flight simulations (and other types of simulations) may use time-series data checkpoints. A time-series storage may be implemented, in part, using a database optimized for storage and retrieval of time-series data. Because of the multiple dimensions that may be applicable to certain types of data (e.g., know data attributes), different types of time-series data may be stored in different ways to leverage these dimensions. For example, when simulating a weather event, temperature will not change dramatically over a period of seconds but in extreme conditions may change about 10 degrees Fahrenheit in a matter of minutes. Accordingly, the range of change of temperature over very short periods of time can be expected to be relatively constant. Temperature is just one example, because processes that are consistent with, laws of nature exhibit attributes similar to that of temperature (e.g., gravity, atmospheric pressure, etc.) whereby they do not typically have sudden dramatic changes in properties over very short periods of time.
Some components associated with maintaining time-series data (e.g., in a time-series database) include: collection of data values (e.g., parameter values), checkpoints of data at periodic points in time, compression of data for storage, storage of compressed data, retrieval of compressed data, expansion of compressed data for analysis, and data analysis. Each of these components may be implemented on different servers in a distributed computing environment and different types of servers may be tuned to provide specialized performance for their function. For example, the type of computer storing large amounts of data may be a file server (e.g., optimized for storage), while the type of computer executing the simulation and generating the data may be a specialized high performance (with respect to compute resources) compute (HPC) cluster. Further, compression and decompression of checkpoints may be implemented on servers including substantial compute resources and high data throughput interfaces. In any case, different functions may be better matched with different types of computer systems so large scale time-series implementations may be distributed to handle potentially vast amounts of data associated with one or more simulations. Finally, to provide for storing vast amounts of data, different types of compression techniques may be used. Different data types (e.g., image data, integers, text, floating point) may have better compression results when using different types of compression. This disclosure addresses compression of floating point numbers associated with time-series data for use in either a single computer implementation or a distributed systems implementation.